#ifndef ILUMINACAO_HPP
#define ILUMINACAO_HPP
#include "raio.hpp"
#include "luz.hpp"
#include "cor.hpp"
#include "vetor.hpp"
#include "material.hpp"
#include "cena.hpp"
#include "objeto.hpp"


class Iluminacao {
public:
	Iluminacao(void);
	~Iluminacao(void);

	Cor calculaCorRec(const int,const Raio&, Vetor, Cena*, const unsigned short) const;
	Cor calculaCor(const int,const Raio&,const Vetor&,Cena*) const;
	
	Raio raioRefletido(const Raio&,Vetor,Vetor) const;
	double calcDifusa(const Vetor&,const Vetor&) const;
	double calcEspecular(const Vetor&,const Vetor&,const Raio&) const;
	
private:
	/*Precisa?*/
};

#endif

